const fs = require('fs')
function mineReadFile(path){
    return new Promise((resolve,reject)=>{
        fs.readFile(path,(err,data)=>{
        if (err){
            reject(err)
        }
        resolve(data.toString())
        })
    })
}

// async(
//     function * (){
//         console.log('start')
//         let fs1 = yield mineReadFile('./fs1.txt')
//         console.log('fs1----'+fs1)
//         let fs2 = yield mineReadFile('./fs2.txt')
//         console.log('fs2-----'+fs2)
//         let fs3 = yield mineReadFile('./fs3.txt')
//         console.log('fs3----'+fs3)
//     }
// )

//console.log(val instanceof Promise)//true
// function async(main){
//     var iter = main()
//    //定义函数对生产器产生对每个值进行处理
//     function handle(generatorres){
//         if(generatorres.done) return;
//         var val = generatorres.value
//         if (val instanceof Promise){
//             val.then((r)=>{
//                 handle(iter.next(r))       
//             }).catch(err => {iter.throw(err)})
//         }    
//     } 
//     try {
//         handle(iter.next())
//     } catch (error) {
//         iter.throw(error)
//     }
// }
// async function * main(){
//     console.log('start')
//     res =[]
//     res.push( await mineReadFile('./fs1.txt'))
//     //yield console.log(fs1)
//     res.push(await mineReadFile('./fs2.txt'))
//     //yield console.log(fs1)
//     res.push(await mineReadFile('./fs3.txt'))
//     yield res
// }
// var main = main()
// main.next().then(val => {
//     console.log(val)
// })
// async function main(){
//     p1 = await mineReadFile('./fs1.txt')
//     console.log(p1)
//     p2 = await mineReadFile('./fs2.txt')
//     console.log(p2)
//     p3 = await mineReadFile('./fs3.txt')
//     console.log(p3)
   
// }
// main()

function * main(){
    p1 = yield mineReadFile('./fs1.txt')
    console.log(p1)
    p2 = yield mineReadFile('./fs2.txt')
    console.log(p2)
    p3 = yield mineReadFile('./fs3.txt')
    console.log(p3)
   
}
var main = main()
var res1 = main.next()





